# 求 1+2!+3!+...+n!的和


def get_factorial(num: int) -> int:
    """
    计算给定数字的阶乘。

    参数:
    num: int - 需要计算阶乘的非负整数。

    返回值:
    int - 给定数字的阶乘结果。
    """
    # 针对0和1的特殊情况，直接返回1
    if num == 0:
        return 1
    elif num == 1:
        return 1
    else:
        # 递归调用，计算num的阶乘
        return num * get_factorial(num - 1)


def main_1(n: int) -> int:
    if n < 1:
        print("请输入大于0的正整数")
    sum = 0
    for i in range(1, n + 1):
        sum += get_factorial(i)
    return sum


if __name__ == "__main__":
    print(main_1(4))
